package com.it.config;

import com.alibaba.druid.pool.DruidDataSource;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.*;

import javax.activation.DataSource;

/*
 * 配置类
 *【说明】：Java配置类、相当于替代原有的配置文件进行管理IOC容器
 *
 *【注解】：
 *        @Configuration
 *              标注的类表示为一个配置类、相当于XML配置文件
 *
 *        @ComponentScan("com.it")、
 *              用于扫描路径下的包文件，装配到IOC容器中
 *
 *        @PropertySource("jdbc.properties")：
 *              用于导入外部文件properties
 *
 *        @Bean：
 *              标注在方法上、表示返回的对象会装配到IOC容器中，进行使用
 *
 *        @Import
 *              导入其他Java类配置文件
 *
 * */
@Configuration
@ComponentScan("com.it")
@PropertySource("jdbc.properties")
//@Import(SpringConfig.class)      // 导入其他Java类配置文件
public class SpringConfig {
    @Value("${jdbc.driver}")
    private String driver;

    @Value("${jdbc.url}")
    private String url;

    @Value("${jdbc.username}")
    private String username;

    @Value("${jdbc.password}")
    private String password;

    @Bean
    public DruidDataSource dataSource() {
        DruidDataSource dataSource = new DruidDataSource();
        dataSource.setDriverClassName(driver);
        dataSource.setUrl(url);
        dataSource.setUsername(username);
        dataSource.setPassword(password);
        return dataSource;
    }
}
